const sessionCache = {
	set(key, value) {
		if (!sessionStorage) {
			return;
		}
		if (key != null && value != null) {
			sessionStorage.setItem(key, value);
		}
	},
	get(key) {
		if (!sessionStorage) {
			return null;
		}
		if (key == null) {
			return null;
		}
		return sessionStorage.getItem(key);
	},
	setJSON(key, jsonValue) {
		if (jsonValue != null) {
			this.set(key, JSON.stringify(jsonValue));
		}
	},
	getJSON(key) {
		const value = this.get(key);
		if (value != null) {
			return JSON.parse(value);
		}
	},
	remove(key) {
		sessionStorage.removeItem(key);
	},
};
const localCache = {
	set(key, value) {
		if (!localStorage) {
			return;
		}
		if (key != null && value != null) {
			localStorage.setItem(key, value);
		}
	},
	get(key) {
		if (!localStorage) {
			return null;
		}
		if (key == null) {
			return null;
		}
		return localStorage.getItem(key);
	},
	setJSON(key, jsonValue) {
		if (jsonValue != null) {
			this.set(key, JSON.stringify(jsonValue));
		}
	},
	getJSON(key) {
		const value = this.get(key);
		if (value != null) {
			return JSON.parse(value);
		}
	},
	remove(key) {
		localStorage.removeItem(key);
	},
};

export default {
	/**
	 * 会话级缓存
	 */
	session: sessionCache,
	/**
	 * 本地缓存
	 */
	local: localCache,
};
